/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package villapancha2011;

import java.util.List;
import java.util.LinkedList;
import java.util.Random;

import org.javahispano.javacup.modelo.*;

/**
 *
 * @author Jorgeao
 */
public class Ubicarse extends VillaPanchaBase {

    public Ubicarse(TacticaVillaPancha2011 t) {
        super(t);
    }

    void ubicarse() {
        //TODO: Implementar
        int[] recuperacion = situacionPartido().getRecuperacionBalon();

        if (recuperacion.length > 1) {
            Grosso grossoCercano = getGrosso(recuperacion[1]);
            double[] puntoRecuperacion = situacionPartido().getTrayectoria(recuperacion[0]);
            if (puntoRecuperacion.length > 1) {
                tactica.comandos.add(new ComandoIrA(grossoCercano.ordinal(), new Posicion(puntoRecuperacion[0], puntoRecuperacion[1])));
                MarcarGrossoUtilizado(grossoCercano);
            }
        } else {
            // Jorgeao TEMP: Hago que uno vaya a la pelota, sino ni arranca el juego :)
            double distancia = 1000.0;
            Grosso grossoCercano = Grosso.Ninguno;
            for (int i = 0; i < 11; i++) {
                Posicion pos = situacionPartido().misJugadores()[i];
                if (esGrossoDisponible(getGrosso(i))) {
                    double d = situacionPartido().balon().distancia(pos);
                    if (distancia > d) {
                        distancia = d;
                        grossoCercano = getGrosso(i);
                    }
                }
            }
            tactica.comandos.add(new ComandoIrA(grossoCercano.ordinal(), situacionPartido().balon()));
            MarcarGrossoUtilizado(grossoCercano);
        }

        // Muevo el resto a la posicion que tienen en la alineacionActual
        for (Grosso grosso : tactica.jugadoresDisponibles) {
            tactica.comandos.add(new ComandoIrA(grosso.ordinal(), tactica.alineacionActual[grosso.ordinal()]));
        }
    }

}
